package cn.yunyichina.provider.authorize.vo;

import cn.yunyichina.provider.framework.annotation.validate.AnnotationValidable;
import cn.yunyichina.provider.framework.annotation.validate.ValidateNotNullAndNotEmpty;
import cn.yunyichina.provider.framework.annotation.validate.ValidateSize;
import cn.yunyichina.provider.framework.annotation.validate.ValidateStringIn;

/**
 * HTTP请求的结构体
 * @author zhangkewen
 *
 */
public class HttpRequestVo implements AnnotationValidable {

	/**
	 * 请求的appid
	 */
	@ValidateNotNullAndNotEmpty
	@ValidateSize(minSize="0",maxSize="32")
	private String appId;
	
	/**
	 * 方法名
	 */
	@ValidateNotNullAndNotEmpty
	@ValidateSize(minSize="0",maxSize="128")
	private String method;
	
	/**
	 * 格式
	 */
	@ValidateNotNullAndNotEmpty
	@ValidateSize(minSize="0",maxSize="40")
	private String format;
	
	/**
	 * 数据
	 */
	@ValidateNotNullAndNotEmpty
	private String data;
	
	/**
	 * 版本
	 */
	@ValidateNotNullAndNotEmpty
	@ValidateSize(minSize="0",maxSize="10")
	private String v;
	
	/**
	 * 时间戳
	 */
	@ValidateNotNullAndNotEmpty
	@ValidateSize(minSize="0",maxSize="20")
	private String timestamp;
	
	/**
	 * 签名类型  1.AES+MD5  2.RSA  
	 */
	@ValidateSize(minSize="0",maxSize="2")
	@ValidateStringIn(value="1,2,3")
	private Integer signType;
	
	/**
	 * 签名
	 */
	@ValidateSize(minSize="0",maxSize="256")
	private String sign;
	
	/**
	 * 会话sessionId
	 */
	@ValidateSize(minSize="0",maxSize="50")
	private String sessionid;
	
	/**
	 * 请求类型：1-第三方对接 2-其他登录 3-用户登录
	 */
	@ValidateNotNullAndNotEmpty
	private String requestType;

	public String getAppId() {
		return appId;
	}

	public void setAppId(String appId) {
		this.appId = appId;
	}

	public String getMethod() {
		return method;
	}

	public void setMethod(String method) {
		this.method = method;
	}

	public String getFormat() {
		return format;
	}

	public void setFormat(String format) {
		this.format = format;
	}

	public String getData() {
		return data;
	}

	public void setData(String data) {
		this.data = data;
	}

	public String getV() {
		return v;
	}

	public void setV(String v) {
		this.v = v;
	}

	public String getTimestamp() {
		return timestamp;
	}

	public void setTimestamp(String timestamp) {
		this.timestamp = timestamp;
	}

	public Integer getSignType() {
		return signType;
	}

	public void setSignType(Integer signType) {
		this.signType = signType;
	}

	public String getSign() {
		return sign;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

    public String getSessionid() {
        return sessionid;
    }

    public void setSessionid(String sessionid) {
        this.sessionid = sessionid;
    }

    public String getRequestType() {
        return requestType;
    }

    public void setRequestType(String requestType) {
        this.requestType = requestType;
    }
}
